package com.hlyj.http.base.tool.lib_hlyj_base.net;
import com.hlyj.http.base.tool.lib_hlyj_base.bean.BaseResult;
import com.hlyj.http.base.tool.lib_hlyj_base.bean.GetadswitchBean;
import com.hlyj.http.base.tool.lib_hlyj_base.bean.GetadswitchResultBean;
import com.hlyj.http.base.tool.lib_hlyj_base.bean.HuaFeiSearchBean;
import com.hlyj.http.base.tool.lib_hlyj_base.bean.HuaFeiSearchResultBean;
import com.hlyj.http.base.tool.lib_hlyj_base.bean.OrderListBean;
import com.hlyj.http.base.tool.lib_hlyj_base.bean.QueryLogisticsBean;
import com.hlyj.http.base.tool.lib_hlyj_base.bean.QueryLogisticsResultBean;
import com.hlyj.http.base.tool.lib_hlyj_base.bean.SignForBean;
import com.hlyj.http.base.tool.lib_hlyj_base.bean.SignForBeanResult;
import com.hlyj.http.base.tool.lib_hlyj_base.bean.UpdateuseridBean;
import com.hlyj.http.base.tool.lib_hlyj_base.bean.music.MusicListBean;
import com.hlyj.http.base.tool.lib_hlyj_base.camera.LoginBean;
import com.hlyj.http.base.tool.lib_hlyj_base.camera.LoginResultBean;
import com.hlyj.http.base.tool.lib_hlyj_base.camera.OrderBean;
import com.hlyj.http.base.tool.lib_hlyj_base.camera.ShopInfoBean;
import com.hlyj.http.base.tool.lib_hlyj_base.camera.UserInfoResultBean;
import com.hlyj.http.base.tool.lib_hlyj_base.qrcode.BaseResult_Qrcode;
import com.hlyj.http.base.tool.lib_hlyj_base.qrcode.QrResultBean;
import com.hlyj.http.base.tool.lib_hlyj_base.weather.HolidayResultBean;
import com.hlyj.http.base.tool.lib_hlyj_base.weather.WeatherResultBean;
import com.hlyj.http.base.tool.lib_hlyj_base.weather.WeatherResultBeanFor40Day;

import java.util.List;
import java.util.Map;

import io.reactivex.Observable;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;

public interface MeApi {
   /**
     * 启动接口
     *  /app/getadswitch}
     */
    @POST("tool-app/app/initSwitch")
    Observable<BaseResult<GetadswitchResultBean>> getAdSwitch(@Body GetadswitchBean reportbean);

    /**
     * 更新用户身份信息
     *  /ap/app/up/{appCode}
     */
    @POST("tool-app/app/improveUserInfo")
    Observable<BaseResult<GetadswitchResultBean>> updateUserIdentity(@Body UpdateuseridBean updateuseridBean);

  /**
  * 带有 Query 参数的新接口
  * 返回响应示例: "ok"
  */
  @POST("tool-log/log/send")
  Observable<String> logSend(@Body List<Map<String, Object>> content);

    /**
     * 查询物流单号
     *  /app/getlogistics}
     */
    @POST("tool-app/app/logistics/queryLogistics")
    Observable<QueryLogisticsResultBean> getLogistics(@Body QueryLogisticsBean reportbean);


    /**
     *查询物流订单接口
     */
    @POST("tool-app/app/logistics/queryLogisticsList")
    Observable<OrderListBean> getOrderList(@Body List<String> orderNumbers);

    /**
     *签收接口
     */
    @POST("tool-app/app/logistics/signFor")
    Observable<SignForBeanResult> signFor(@Body SignForBean signForBean);

    /**
     * 获取应用黑白名单配置
     */
    @GET("tool-app/app/getAppRiskConfig")
    Observable<BaseResult<AppRiskConfigBean>> getAppRiskConfig();


    /**
     * 话费查询接口
     */
    @POST("tool-app/app/phoneBill/queryPhoneBill")
    Observable<BaseResult<HuaFeiSearchResultBean>> HuafeiSeach(@Body HuaFeiSearchBean huaFeiSearchBean);

    /**
     * 获取音乐列表
     */
    @GET("tool-app/app/music/list")
    Observable<BaseResult<List<MusicListBean>>> getMusicList(@Query("category") String category);

    /**
     * 获取二维码商品扫描结果
     */
    @GET("barcode2/query")
    Observable<BaseResult_Qrcode<QrResultBean>> getShopList(@Query("AppCode") String appCode, @Query("barcode") String barcode);

    /**
     * 获取24小时免费天气
     */
    @GET("free/v2030")
    Observable<WeatherResultBean> get24hoursWeather(
            @Query("appid") String appid,
            @Query("appsecret") String appsecret,
            @Query("city") String city,
            @Query("hours") int hours

    );
  /**
   * 获取40天天气
   */
  @GET("api")
  Observable<WeatherResultBeanFor40Day> get40DayWeather(
          @Query("unescape") int unescape,
          @Query("version") String v31,
          @Query("appid") String appid,
          @Query("appsecret") String appsecret,
          @Query("city") String city


  );

  /**
   * 获取当天万年历
   */
  @GET("holiday/single/{date}")
  Observable<BaseResult<HolidayResultBean>> getCurrentHoliday(
          @Path("date") String date,
          @Query("ignoreHoliday") boolean ignoreHoliday,
          @Query("app_id") String app_id,
          @Query("app_secret") String app_secret
  );

  /**
   * 获取验证码
   */
  @GET("tool-app/app/camera/captcha")
  Observable<BaseResult<Void>> getVerificationCode(@Query("phone") String phone);

  /**
   * 登录
   */
  @POST("tool-app/app/camera/login")
  Observable<BaseResult<LoginResultBean>> login(@Body LoginBean loginBean);

  /**
   * 获取商品信息列表
   */
  @GET("tool-app/app/camera/productList")
  Observable<BaseResult<List<ShopInfoBean>>> getShopList();

  /**
   * 获取用户信息
   */
  @GET("tool-app/app/camera/info")
  Observable<BaseResult<UserInfoResultBean>> getUserInfo(@Query("Authorization") String Authorization);

  /**
   * 创建订单
   */
  @POST("/tool-app/app/camera/createPayment")
  Observable<BaseResult<Void>> createPayment(
          @Query("Authorization") String authorization,
          @Body OrderBean orderBean);
}